The network management system of the present invention may in practice, be of the type illustrated in FIG. 1. Network operators, who are positioned at operation centers OC, use network management workstations WS, which are connected to a separate workstation network WSN, such as, for example, an Ethernet network. Typically, the management system is distributed in several computers of the workstation network, and have an access to a database DB, which includes the information required for the management of the network. Via a Q3 interface determined in international standards, the management system is connected, for instance, to a mobile network MN, which may comprise as network elements NE a mobile services switching center MSC, a base station controller BSC, a base station BTS, and a mobile station. The connection to the managed network is established by a data communication network DCN. The managed network may also be any communication network, for example, a combined SDH/PDH network.
A CMISE application service element (CMISE=Common Management Information Service Element), used in OSI communication of Q3 interface in network management, provides the application process with a SCOPE/FILTER function (cf., ISO/IEC-9596-1 Information Technology--Open Systems Interconnection--Common management information protocol--Part 1:Specification). The purpose of the function is to select a sub-group from among the managed object instances, to which a CMIP operation (CMIP=Common Management Information Protocol), such as a m-Get, is applied.
The managed objects in the network element form a tree-like hierarchical structure, which is stored in the memory of the network element, and whose nodes contain the object instance and attributes relating thereto. In SCOPE/FILTER function, the SCOPE condition is used for demarcating the CMIP operation to refer to a subtree in the tree (MIT, Managed Information Tree) of the managed object instances. This takes place by the name, i.e., DN (Distinguished Name), of the subtree root being given in the operation. The FILTER condition of the CMIP operation is applied separately to each object instance functioning as a node for the subtree. The values of the object instance attributes must fulfil this condition prior to applying the CMIP operation to the object instance. Following application of SCOPE and FILTER conditions, the group of those object instances to which the CMIP operation relates has been established.
In testing whether the values of the object instances meet the FILTER condition, a comparison is carried out in which the attribute values of the object instances are compared to specific reference values. Without a general-purpose testing mechanism, a separate, specific comparison function needs to be created for each type of attribute in the network element. To carry out this, the network element must have a large memory capacity. As far as large network elements are concerned, typically having hundreds or even thousands of managed objects, complicates and slows memory management because the overall memory capacity required to carry out the comparison increases tremendously. For small network elements, a memory requirement such as this is also emphasized in an economical sense because in a strive to implement small network elements (for example, mobile phones) as economically as possible, memory expansion of just one byte bears significance.
For the above reasons, in the implementation of the FILTER condition, a general purpose solution should be the goal, i.e., how to implement the testing of the FILTER condition in a network element by in general purpose manner. The object is to implement a function which is able to determine, based on the FILTER condition of the CMIP operation and the attribute values of the object instance, whether the attribute values of the object instance fulfil the FILTER condition. The form of the FILTER condition is disclosed in the aforementioned standard, ISO/IEC-9596-1 p. 16, by of ASN.1 notation in an ASN.1 data type CMISFilter (ASN.1=Abstract Syntax Notation One). The ASN.1 notation is determined in the standard ISO 8824 and described in more detail. In practice, the FILTER condition is a regular expression (c.f., expressions in a programming language), which may contain logical operators (AND, OR, NOT), relational operators (=, .ltoreq., .gtoreq.), graphic string operators (initialString, anyString, finalString), and set operators (present, subsetOf, supersetOf, non-nullIntersection).
The logical operators and the graphic string operators present no problem in testing a general-purpose FILTER condition. Instead, a problem arises concerning the implementation of relational operators and set operators. The difficulties in the implementation of the operators are clearly shown in the following example:
The attribute under comparison is assumed to be of type A, represented in ASN.1 notation as follows:
______________________________________ A::=SEQUENCE { B INTEGER, C REAL, D GraphicString } ______________________________________
The aforementioned denotation means that an attribute of type A is a sequence of three variables, B, C, and D, in which B is an integer, C is a real number and D is a graphic string. In the network element, the type A can be implemented as the following struct data type of C language:
______________________________________ typedef struct { int B; float C; char *D; } A; ______________________________________
If the comparison function of the attribute values obtains the real value of the attribute and the reference value as a mere octet string, without knowing the structure of the data type in closer detail, it is hard to conceive how to carry out a general-purpose equivalence comparison between the attribute values. Even if two values of the type A had exactly the same meaning, a linear octet string comparison results in an erroneous result if the graphic string pointers of the field D point to different locations. The equivalence comparison only gives a correct result if the comparison function knows that "the data type A is a record whose third field (D) is a pointer to a graphic string, and that the equivalence comparison of the third field takes place between graphic strings addressed by the pointers".
Therefore, a problem in testing the FILTER condition stems from the fact that it is not possible to apply a linear octet string comparison to the attribute values contained in the FILTER condition, but the comparer must always, by one way or another, be aware of the data types of the attribute values under comparison.